package com.icinfo.cloud.provider.punish.ucase.punishexecute.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.icinfo.cloud.common.core.Validator.BaseGroup;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.AppendixDto;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

/**
 * @Description 获取分期明细入参
 * @Author mahan
 * @Date 2022/9/20
 * @Version 1.0
 */
@Data
public class CaseDelayInstallmentDto implements Serializable {
    private static final long serialVersionUID = 1L;


    /**
     * 分期（延期）记录ID
     */
    @NotEmpty(message = "分期（延期）记录ID不能为空", groups = {BaseGroup.Update.class})
    private String id;

    /**
     * 案件ID
     */
    @NotEmpty(message = "案件ID不能为空", groups = {BaseGroup.Insert.class, BaseGroup.Update.class})
    private String caseId;

    /**
     * 缴纳罚款总金额
     */
    @NotEmpty(message = "缴纳罚款总金额不能为空", groups = {BaseGroup.Insert.class, BaseGroup.Update.class})
    private String installmentPayTotalAmount;

    /**
     * 分期（延期）类型：1、延期，2、分期
     */
    @NotEmpty(message = "分期（延期）类型不能为空", groups = {BaseGroup.Insert.class, BaseGroup.Update.class})
    private String delayInstallmentType;

    /**
     * 当事人ID
     */
    @NotEmpty(message = "当事人ID不能为空", groups = {BaseGroup.Insert.class, BaseGroup.Update.class})
    private String partyId;

    /**
     * 延期罚款截止日期（yyyy-MM-dd）：延期必填
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate delayPayDate;

    /**
     * 分期参数对象（分期时必填）
     */
    private CaseInstallmentDetailDto caseInstallmentDetail;

    /**
     * 分期明细list（分期时必填）
     */
    private List<CaseInstallmentListDto> caseInstallmentList;

    /**
     * 附件信息列表
     */
    private List<AppendixDto> appendixList;

    /**
     * 文书目录编码
     */
    private String documentCatalogCode;
}
